iT邦幫忙

0

用爬蟲計算自己 IT 邦幫忙所有文章的瀏覽/Like/留言總數

  • 分享至 

  • xImage
  •  

我想應該有許多 IT 邦幫忙的作者都很關心自己文章的瀏覽數,像筆者就是一個喜歡三不五時去看看自己文章增加多少瀏覽量的人;剛好有其他創作者反映希望可以透過工具取得自己所有文章的瀏覽/Like/留言總數,而不是靠計算機土法煉鋼來計算。

藉此機會筆者就研究了一下「puppeteer」這個套件的用法,再花一點時間把小工具寫出來,完整的程式碼如下:

  • main.js

    const puppeteer = require("puppeteer");
    require("dotenv").config();
    
    (async () => {
      const ithelp_url = process.env.ITHELP_URL || "https://google.com/";
      const browser = await puppeteer.launch({
        headless: process.env.HEADLESS == "false" ? false : true,
      });
    
      let total_likes = 0;
      let total_responses = 0;
      let total_views = 0;
      let p = 0;
      //end = false時while迴圈會中斷
      let end = true;
      const page = await browser.newPage();
      while (end) {
        p == 0 ? await page.goto(ithelp_url) : await page.goto(ithelp_url + `?page=` + p);
        await page.waitForSelector(".profile-main__title");
    
        let elements = await page.$$(".qa-condition__count");
        if (elements.length > 0) {
          for (var i = 0; i < elements.length; i++) {
            let tmp_text = await page.evaluate((el) => el.textContent, elements[i]);
            if (i % 3 == 0) {
              total_likes += parseInt(tmp_text);
            } else if (i % 3 == 1) {
              total_responses += parseInt(tmp_text);
            } else if (i % 3 == 2) {
              total_views += parseInt(tmp_text);
            }
          }
        } else {
          await browser.close();
          end = false;
        }
        p++;
      }
      console.log({ "toal likes": total_likes, "toal responses": total_responses, "toal views": total_views });
    })();
    
  • .env

    # 填上自己想要爬蟲的頁面,下面是筆者個人的文章頁面喔
    ITHELP_URL=https://ithelp.ithome.com.tw/users/20103256/articles
    # 預設不開啟瀏覽器,如果你想開啟就改成false
    HEADLESS=false
    

大家也可以到筆者的 Gihub 直接把專案 Clone 下來執行,下面是用筆者在 IT 邦幫忙文章網址的 Demo:

  • 使用鐵人賽文章網址:https://ithelp.ithome.com.tw/users/20103256/ironman/4227
    https://ithelp.ithome.com.tw/upload/images/20220104/20103256WSe65v4HdG.png
  • 使用個人文章網址:https://ithelp.ithome.com.tw/users/20103256/articles
    https://ithelp.ithome.com.tw/upload/images/20220104/2010325676AbVzZxRu.png

專案使用提醒:

  • 去「.env」裡面把「ITHELP_URL」改成自己的網址
  • 如果你想要看到瀏覽器彈出來,去「.env」裡面把「HEADLESS」改成 false
  • 記得先在終端機輸入yarn將套件安裝
  • 在終端機輸入yarn start即可執行

感謝大家的閱讀,如果文章有幫助到你,按Like可以讓我更有寫文的動力。

我在 Medium 平台 也分享了許多技術文章
❝ 主題涵蓋「MIS & DEVOPS資料庫前端後端MICROSFT 365GOOGLE 雲端應用自我修煉」希望可以幫助遇到相同問題、想自我成長的人。❞


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言